package com.easyctba.core.service;

import com.easyctba.common.core.domain.R;
import com.easyctba.core.domain.CtbaFiasClass;
import com.easyctba.core.domain.bo.FiasAddPolylineBo;
import com.easyctba.core.domain.bo.FiasClassAddBo;
import com.easyctba.core.domain.vo.CtbaFiasClassVo;
import com.easyctba.core.domain.bo.CtbaFiasClassBo;
import com.easyctba.common.mybatis.core.page.TableDataInfo;
import com.easyctba.common.mybatis.core.page.PageQuery;

import java.util.Collection;
import java.util.List;

/**
 * fias分类Service接口
 *
 * @author Huang
 * @date 2024-03-22
 */
public interface ICtbaFiasClassService {

    /**
     * 查询fias分类
     */
    CtbaFiasClassVo queryById(Long id);

    /**
     * 查询fias分类列表
     */
    TableDataInfo<CtbaFiasClassVo> queryPageList(CtbaFiasClassBo bo, PageQuery pageQuery);

    /**
     * 查询fias分类列表
     */
    List<CtbaFiasClassVo> queryList(CtbaFiasClassBo bo);

    /**
     * 新增fias分类
     */
    Boolean insertByBo(CtbaFiasClassBo bo);

    /**
     * 修改fias分类
     */
    Boolean updateByBo(CtbaFiasClassBo bo);

    /**
     * 校验并批量删除fias分类信息
     */
    Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);

    List<CtbaFiasClass> selectByCategoryId(Long id);

    R<Void> addClass(FiasClassAddBo bo);

    R<Void> delete(Long id);

    R<String> getNum(Long id);

    List<CtbaFiasClass> selectByIds(List<Long> classIds);

    List<Long> getClassSizeByCategoryIds(List<Long> longs);
}
